import { createRouter, createWebHistory } from 'vue-router'
import autoRoutes from './autoRoutes'

import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

NProgress.configure({
  showSpinner: false, // 不显示加载圆圈
  speed: 400,
  trickleSpeed: 200,
})

// 创建路由实例
const router = createRouter({
  history: createWebHistory(),
  routes: [
    ...autoRoutes,
    {
      path: '/:pathMatch(.*)*',
      name: 'NotFound',
      component: () => import('@/pages/error/404/index.vue'),
    },
  ],
})

// 模拟登录状态（你也可以替换为 pinia 或 vuex）
function isAuthenticated() {
  return !!localStorage.getItem('token')
}

// 路由拦截器
router.beforeEach((to, from, next) => {
  NProgress.start()
  // 如果访问登录页，直接放行
  if (to.path === '/login') {
    next()
    return
  }

  // 需要登录的页面（可以在 route.meta.requireAuth 中控制）
  if (to.meta?.requireAuth && !isAuthenticated()) {
    next('/login')
    return
  }

  next()
})

router.afterEach((to) => {
  NProgress.done()
  // 这里可以加 loading、统计埋点等逻辑
  console.log('✅ 页面跳转完成')

  // 自动设置标题
  if (to.meta?.title) {
    document.title = `${to.meta.title} | MyApp`
  } else {
    document.title = 'MyApp'
  }
})

export default router
